//
//  Bar+TestCategary.m
//  MethodsSwizzlingTest
//
//  Created by wangrui on 13-11-27.
//  Copyright (c) 2013年 PPS. All rights reserved.
//

#import "Bar+TestCategary.h"

@implementation Bar (TestCategary)

- (void)altTestMethod{
     NSLog(@">> Bar(BarCategory) altTestMethod");
}
- (void)altBaseMethod{
     NSLog(@">> Bar(BarCategory) altBaseMethod");
}
- (void)altRecusionMethod{
    NSLog(@">> Bar(BarCategory) altRecusionMethod");
    [self altRecusionMethod];
}

/*
 *这里可以进一步理解类别，类别就是在runtime中新加了一个method
 *如果方法名字和你要扩展的类别相同，那么runtime就区分不清楚了。因为一个类
 *只有一个一样名字的selector（不算父类什么，子类重新的方法名字),是因为这样runtime才能找到要实现哪个IMP
 *所以就会用categary里的Implementation替换原来的
 */

//- (void)testMethod{//名字相同会有警告
//     NSLog(@">> Bar(BarCategory) testMethod");
//    
//    [super testMethod];//调用super是可以的，因为super的imp地址是不一样的
//}


@end
